#!/bin/bash

# 家庭图书管理系统 - 开发环境启动脚本

echo "========================================="
echo "  家庭图书管理系统 - 开发环境启动"
echo "========================================="

# 参数处理
case "$1" in
  db)
    echo "启动开发环境数据库..."
    docker-compose -f docker-compose.dev.yml up -d mysql
    echo "数据库已启动，可以通过 localhost:3306 访问"
    echo "数据库名: family_library_dev"
    echo "用户名: family, 密码: family123"
    ;;
  backend)
    echo "启动后端服务..."
    cd ..
    mvn spring-boot:run > backend.log 2>&1 &
    BACKEND_PID=$!
    echo "后端服务已启动，PID: $BACKEND_PID"
    echo "后端服务: http://localhost:8080"
    cd dev
    ;;
  frontend)
    echo "启动前端服务..."
    # 启动H5移动端
    cd ../frontend/h5-mobile
    npm run serve > h5-mobile.log 2>&1 &
    H5_PID=$!
    echo "H5移动端已启动，PID: $H5_PID"
    
    # 启动Web管理端
    cd ../web-admin
    npm run serve > web-admin.log 2>&1 &
    WEB_PID=$!
    echo "Web管理端已启动，PID: $WEB_PID"
    
    cd ../../dev
    echo "H5移动端: http://localhost:8081"
    echo "Web管理端: http://localhost:8082"
    ;;
  all)
    echo "启动完整的开发环境..."
    # 启动数据库
    docker-compose -f docker-compose.dev.yml up -d mysql
    echo "数据库已启动"
    
    # 启动后端
    cd ..
    mvn spring-boot:run > backend.log 2>&1 &
    BACKEND_PID=$!
    echo "后端服务已启动，PID: $BACKEND_PID"
    
    # 启动前端
    cd frontend/h5-mobile
    npm run serve > h5-mobile.log 2>&1 &
    H5_PID=$!
    
    cd ../web-admin
    npm run serve > web-admin.log 2>&1 &
    WEB_PID=$!
    
    cd ../../dev
    echo "所有服务已启动完成！"
    echo "后端服务: http://localhost:8080"
    echo "H5移动端: http://localhost:8081"
    echo "Web管理端: http://localhost:8082"
    echo "MySQL数据库: localhost:3306"
    ;;
  stop)
    echo "停止开发环境..."
    # 停止数据库
    docker-compose -f docker-compose.dev.yml down
    
    # 停止后端和前端服务
    pkill -f "mvn spring-boot:run"
    pkill -f "npm run serve"
    echo "开发环境已停止"
    ;;
  status)
    echo "开发环境状态:"
    docker-compose -f docker-compose.dev.yml ps
    ;;
  logs)
    echo "查看日志:"
    echo "后端日志: tail -f ../backend.log"
    echo "H5移动端日志: tail -f ../frontend/h5-mobile/h5-mobile.log"
    echo "Web管理端日志: tail -f ../frontend/web-admin/web-admin.log"
    ;;
  *)
    echo "使用方法:"
    echo "  ./dev-start.sh db       - 启动开发环境数据库"
    echo "  ./dev-start.sh backend  - 启动后端服务"
    echo "  ./dev-start.sh frontend - 启动前端服务"
    echo "  ./dev-start.sh all      - 启动完整开发环境"
    echo "  ./dev-start.sh stop     - 停止开发环境"
    echo "  ./dev-start.sh status   - 查看开发环境状态"
    echo "  ./dev-start.sh logs     - 查看日志信息"
    ;;
esac